package old.items;

import java.io.IOException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


public class ListaPrzewijana extends ElementPanelu
{
    private static Image lewo = null;
    private static Image prawo = null;
    private String[] teksty;
    private int aktualnaPozycja;
    private int maksymalnaPozycja;
    
    public ListaPrzewijana(String e, String[] p)
    {
        etykieta = e;
        teksty = p;
        aktualnaPozycja = 0;
        maksymalnaPozycja = teksty.length - 1;
        init();
    }
    
    private static void init()
    {
        if(lewo != null)
            return;
        try
        {
            lewo = Image.createImage("/gui/images/left.png");
            prawo = Image.createImage("/gui/images/right.png");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
    
    public int minimalnaWysokosc()
    {
        return panel.duzaCzcionka.getHeight() + 3 + (etykieta == null ? 0 : panel.malaCzcionka.getHeight());
    }

    public boolean akcja(int kod)
    {
        switch(kod)
        {
            case -3:    // LEFT:
                if(aktualnaPozycja > 0)
                    aktualnaPozycja--;
                odrysuj();
                return true;
            case -4:    // RIGHT:
                if(aktualnaPozycja < maksymalnaPozycja)
                    aktualnaPozycja++;
                odrysuj();
                return true;
            default:
                return false;
        }
    }
    

    public void rysuj(Graphics g, int szerokosc, int wysokosc, boolean wybrany)
    {
        int prz = 0;
        g.setColor(wybrany ? panel.kolorWybranegoTekstu : panel.kolorTekstu);

        if(etykieta != null)
        {
            g.setFont(panel.malaCzcionka);
            g.drawString(etykieta + ":", 0, 0, 0);
            prz += panel.malaCzcionka.getHeight();
        }
        if(aktualnaPozycja > 0)
            g.drawImage(lewo, 0, (prz + wysokosc) / 2, Graphics.LEFT | Graphics.VCENTER);
        if(aktualnaPozycja < maksymalnaPozycja)
            g.drawImage(prawo, szerokosc, (prz + wysokosc) / 2, Graphics.RIGHT | Graphics.VCENTER);
        g.setFont(panel.duzaCzcionka);
        g.drawString(teksty[aktualnaPozycja], szerokosc / 2, prz + 2 /* interlinia */, Graphics.HCENTER | Graphics.TOP);
    }

}
